home *** CD-ROM | disk | FTP | other *** search
/ Games of Daze / Infomagic - Games of Daze (Summer 1995) (Disc 1 of 2).iso / x2ftp / msdos / libs / knowhow4 / move.cpp < prev    next >
C/C++ Source or Header  |  1994-10-10  |  1KB  |  56 lines

  1. #include <math.h>
  2. #include <alloc.h>
  3. #include "move.h"
  4.  
  5. void move_rect(rect src, int sh, int dir)
  6.     {
  7.     int sx = 0;
  8.     int sy = 0;
  9.     if(dir == 0)           // VERTICAL
  10.     sy = sh;
  11.     else
  12.     sx = sh;
  13.     void* im = (void*)malloc(imagesize(0, 0, src.width(), 0));         // image
  14.     register int i;
  15.     if(sh < 0)
  16.     {
  17.     for(i = 0; i < src.height(); i++)
  18.         {
  19.         getimage(src.origin.X, src.origin.Y + i,
  20.              src.corner.X,
  21.              src.origin.Y + i, im);
  22.         putimage(src.origin.X + sx, src.origin.Y + i + sy, im, 0);
  23.         }
  24.     }
  25.     else
  26.     {
  27.     for(i = src.height() - 1; i >= 0; i--)
  28.         {
  29.         getimage(src.origin.X, src.origin.Y + i,
  30.              src.corner.X,
  31.              max(src.origin.Y + i, src.origin.Y),
  32.              im);
  33.         putimage(src.origin.X + sx, src.origin.Y + i + sy, im, 0);
  34.         }
  35.     }
  36.     delete im;
  37.     }
  38.  
  39. //////////////////////
  40. /*
  41. void main()
  42.     {
  43.     int gdriver = DETECT, gmode;
  44.     initgraph(&gdriver, &gmode, "..\\BGI");
  45.  
  46.     setfillstyle(SOLID_FILL, RED);
  47.     bar(0, 0, 500, 300);
  48.     line(0, 0, 500, 300);
  49.     line(0, 300, 500, 0);
  50.     rectangle(16, 16, 32, 32);
  51.  
  52.     move_rect(rect(0, 0, 500, 300), 100, 0);
  53.     move_rect(rect(0, 100, 500, 400), 100, 1);
  54.     }
  55. */
  56.